package com.itheima.reggie.mapper;

import com.itheima.reggie.dto.DishDto;
import com.itheima.reggie.entity.Dish;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface DishMapper {

    /**
     * 根据分类id查询是否有关联的菜品
     * @param categoryId
     * @return
     */
    @Select("select * from dish where category_id = #{categoryId}")
    List<Dish> findDishByCategoryId(long categoryId);

    /**
     * 条件分页查询
     * @param name
     * @return
     */
    List<Dish> findPage(String name);

    /**
     * 新增菜品
     */
    @Insert("insert into dish values(null,#{name},#{categoryId},#{price},#{code},#{image},#{description},#{status},0,#{createTime},#{updateTime},#{createUser},#{updateUser},0)")
    @Options(useGeneratedKeys = true,keyColumn = "id",keyProperty = "id")
    int addDish(DishDto dishDto);

    /**
     * 根据id查询菜品
     * @param id
     * @return
     */
    @Select("select * from dish where id = #{id}")
    Dish findDishByDishId(long id);

    /**
     * 更新菜品
     * @param dishDto
     * @return
     */
    int update(DishDto dishDto);

    /**
     * 批量更新菜品状态
     * @param status
     * @param ids
     * @return
     */
    int updateDishStatus(@Param("status") int status,@Param("ids")Long[] ids);

    /**
     * 批量删除菜品
     * @param ids
     * @return
     */
    int deleteDish(@Param("ids")Long[] ids);

    /**
     * 根据id查询图片名字
     * @param id
     * @return
     */
    @Select("select image from dish where id =#{id}")
    String findImageNameById(Long id);

    /**
     * 测试一对多查询
     * @param id
     * @return
     */
    DishDto findDishDto(Long id);

    /**
     * 根据分类id查询菜品列表
     * @param categoryId
     * @return
     */

    List<Dish> findDishListById(@Param("categoryId")Long categoryId,@Param("status")Integer status);

    /**
     * 根据ids查询菜品列表
     * @param ids
     * @return
     */
    List<Dish> findDishByDishIds(@Param("ids") long[] ids);



    int findDishIsSaleByIds(@Param("ids")Long[] ids);
}
